using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System.IO;
using CrystalDecisions.CrystalReports;
using System.Data.SqlClient;
public partial class ReporteProveedores : System.Web.UI.Page
{
    //select cod_proveedor, Personas.nombres, Personas.apellidos, Proveedores.nro_documento, Proveedores.cod_tipo_documento, Tipos_Documentos.descripcion as TipoDoc, nombre_empresa, Proveedores.direccion_empresa, telefono_empresa from Personas join Proveedores on (Personas.cod_tipo_documento=Proveedores.cod_tipo_documento and Personas.nro_documento = Proveedores.nro_documento)join Tipos_Documentos ON (Proveedores.cod_tipo_documento=Tipos_Documentos.cod_tipo_documento)
    ReportDocument reportDoc = new ReportDocument();
    protected void Page_Load(object sender, EventArgs e)
    {

        mostarReporte();
    }
    protected void mostarReporte()
    {
        try
        {
            String cadena = (String)ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
            SqlConnection conexion = new SqlConnection(cadena);
            string consulta = "";
            string concatena = "";
            SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(consulta + " " + concatena, conexion);
            int num = 0;
            if(tb_codProveedor.Text!=string.Empty)
            {
                if (num == 0)
                {
                    consulta = "select cod_proveedor, Personas.nombres, Personas.apellidos, Proveedores.nro_documento, Proveedores.cod_tipo_documento, Tipos_Documentos.descripcion as TipoDoc, nombre_empresa, Proveedores.direccion_empresa, telefono_empresa from Personas join Proveedores on (Personas.cod_tipo_documento=Proveedores.cod_tipo_documento and Personas.nro_documento = Proveedores.nro_documento)join Tipos_Documentos ON (Proveedores.cod_tipo_documento=Tipos_Documentos.cod_tipo_documento) " +
                        "WHERE Proveedores.cod_proveedor = "+tb_codProveedor.Text;
                    
                    da = new System.Data.SqlClient.SqlDataAdapter(consulta, conexion);
                    num++;
                }
                else
                {
                    concatena = "AND Proveedores.cod_proveedor = " + tb_codProveedor.Text;
                    da = new System.Data.SqlClient.SqlDataAdapter(consulta+" "+concatena, conexion);
                    num++; 
                }
            } if (tb_empresa.Text != string.Empty)
            {
                if (num == 0)
                {
                    consulta = "select cod_proveedor, Personas.nombres, Personas.apellidos, Proveedores.nro_documento, Proveedores.cod_tipo_documento, Tipos_Documentos.descripcion as TipoDoc, nombre_empresa, Proveedores.direccion_empresa, telefono_empresa from Personas join Proveedores on (Personas.cod_tipo_documento=Proveedores.cod_tipo_documento and Personas.nro_documento = Proveedores.nro_documento)join Tipos_Documentos ON (Proveedores.cod_tipo_documento=Tipos_Documentos.cod_tipo_documento) " +
                        "WHERE Proveedores.nombre_empresa like '" + tb_empresa.Text + "%'";

                    da = new System.Data.SqlClient.SqlDataAdapter(consulta, conexion);
                    num++;
                }
                else
                {
                    concatena = "AND Proveedores.nombre_empresa like '" + tb_empresa.Text + "%'";
                    da = new System.Data.SqlClient.SqlDataAdapter(consulta + " " + concatena, conexion);
                    num++;
                }
            }
            if (tb_nroDocumento.Text != string.Empty)
            {
                if (num == 0)
                {
                    consulta = "select cod_proveedor, Personas.nombres, Personas.apellidos, Proveedores.nro_documento, Proveedores.cod_tipo_documento, Tipos_Documentos.descripcion as TipoDoc, Proveedores.nombre_empresa, Proveedores.direccion_empresa, telefono_empresa from Personas join Proveedores on (Personas.cod_tipo_documento=Proveedores.cod_tipo_documento and Personas.nro_documento = Proveedores.nro_documento)join Tipos_Documentos ON (Proveedores.cod_tipo_documento=Tipos_Documentos.cod_tipo_documento) " +
                        "WHERE Proveedores.nro_documento = " + tb_nroDocumento.Text;

                    da = new System.Data.SqlClient.SqlDataAdapter(consulta, conexion);
                    num++;
                }
                else
                {
                    concatena = "AND Proveedores.nro_documento = " + tb_nroDocumento.Text;
                    da = new System.Data.SqlClient.SqlDataAdapter(consulta + " " + concatena, conexion);
                    num++;
                }
            }
            if(tb_codProveedor.Text.Equals("") && tb_empresa.Text.Equals("") && tb_nroDocumento.Text.Equals("")){
                consulta = "select cod_proveedor, Personas.nombres, Personas.apellidos, Proveedores.nro_documento, Proveedores.cod_tipo_documento, Tipos_Documentos.descripcion as TipoDoc, nombre_empresa, Proveedores.direccion_empresa, telefono_empresa from Personas join Proveedores on (Personas.cod_tipo_documento=Proveedores.cod_tipo_documento and Personas.nro_documento = Proveedores.nro_documento)join Tipos_Documentos ON (Proveedores.cod_tipo_documento=Tipos_Documentos.cod_tipo_documento) ";
                da = new System.Data.SqlClient.SqlDataAdapter(consulta, conexion);
                num++;
            }
            DataSet ds_Proveedores = new DataSet();
            da.Fill(ds_Proveedores, "Proveedores");
            reportDoc.Load(Server.MapPath("~/Reportes/ReporteProveedores.rpt"));
            reportDoc.SetDataSource(ds_Proveedores.Tables["Proveedores"]);
            Reporte_Proveedores.ReportSource = reportDoc;
            Reporte_Proveedores.RefreshReport();
        }
        catch (Exception error)
        {
            error.Message.ToString();

        }

    }
    
    protected void ib_cancelar_Click(object sender, ImageClickEventArgs e)
    {
        tb_codProveedor.Text = string.Empty;
        tb_empresa.Text = string.Empty;
        tb_nroDocumento.Text = string.Empty;
        mostarReporte();
        

    }
    protected void ib_reporte_Click(object sender, ImageClickEventArgs e)
    {
        mostarReporte();
    }
}
